package utils

// PageInfo 分页查询参数
type PageInfo struct {
	Page     int    `form:"page" json:"page" binding:"min=1"`         // 页码，从1开始
	PageSize int    `form:"pageSize" json:"pageSize" binding:"min=1"` // 每页大小
	Keyword  string `form:"keyword" json:"keyword"`                   // 搜索关键词
}

// GetPage 获取页码
func (p *PageInfo) GetPage() int {
	if p.Page <= 0 {
		return 1
	}
	return p.Page
}

// GetPageSize 获取每页大小
func (p *PageInfo) GetPageSize() int {
	if p.PageSize <= 0 {
		return 10
	}
	if p.PageSize > 100 {
		return 100
	}
	return p.PageSize
}

// GetOffset 获取偏移量
func (p *PageInfo) GetOffset() int {
	return (p.GetPage() - 1) * p.GetPageSize()
}
